أنا مبتدئ تمامًا ، وقد درست ذاتيًا لمدة أسبوعين استعدادًا لمعسكر تدريبي قادم في غضون شهر. في محاولة لتحسين مهاراتي و "تعلم التفكير كمطور" ، بدأت في مشروع يحاول حل مشكلة في العالم الحقيقي. تدير زوجتي نشاطًا تجاريًا يتطلب منها إصدار فواتير لعملائها. أحاول استخدام HTML و JavaScript لإنشاء تطبيق على شبكة الإنترنت يمكّنها من إنشاء فواتير مخصصة بسرعة بدلاً من كتابتها يدويًا في كل مرة. في الإصدار الحالي ، تطلب مطالبة رقمًا منها. يُنشئ هذا الرقم عددًا متساويًا من صفوف ثلاثة أعمدة في HTML. يتيح لها ذلك تخصيص الفاتورة بالعدد الدقيق للحقول التي تحتاجها. يحتوي العمود 1 على اسم المنتج. في نفس الصف ، يحتوي العمود 2 على عدد الوحدات ، بينما يحتوي العمود 3 على التكلفة الإجمالية لهذا المنتج ، وهو السعر الأساسي مضروبًا في عدد الوحدات. أريد أن يتم هذا الحساب عند النقر فوق الزر. لكنني عالق. من أجل إجراء العمليات الحسابية ، يجب أن أكون قادرًا على الحصول على الأعداد الصحيحة من كل صف وعمود وتمريرها إلى دالة. ولكن نظرًا لأنه تم إنشاء كل صف وعمود تلقائيًا ، فلا توجد سمات فريدة لهما وبالتالي لا يمكن تحديدهما. أنا قادر على إجراء العمليات الحسابية أسفل كل عمود ، ولكن ليس عبر كل صف. نظرًا لأنني جديد جدًا ، بعد أن تعلمت فقط من دورتين تمهيديتين في Codecademy وبعض مقاطع فيديو YouTube ، لا أعرف كيف أقوم بتقييم ما إذا كنت أقترب من المشروع بشكل خاطئ تمامًا ، أو إذا كان هناك بعض الحيلة التي فاتني ، أو إذا كان هناك شيء لم يتعلمه بعد. إذا تمكن شخص لديه بعض الخبرة من دفعني في الاتجاه الصحيح ، فأنا أقدر ذلك حقًا! لقد أرفقت كل الشفرة بهذا المنشور. أعتذر إذا كانت فوضى رهيبة. كن هادئًا ، فأنا مبتدئ! const invDate = التاريخ () ، var field = " " + " " + "
"؛ document.getElementById ('newInvoice'). onclick = function () { let invoicedName = موجه ("لمن تم إرسال هذه الفاتورة؟" ، "أدخل اسمًا") ؛ let productFields = Number (موجه ("كم عدد أسماء المنتجات في هذه الفاتورة؟" ، "الرجاء إدخال رقم")) ؛ دع الحقول = " دع dynHtml = " إذا (invoicedName! = null && productFields! = null) { لـ (let i = 1؛ i <= productFields؛ i ++) { الحقول + = الحقل} ؛ } else {alert ('Please enter valid inputs.')؛ } ؛ dynHtml = ""؛ document.write (dynHtml) ؛ document.getElementById ('calculate'). onclick = function getQtyFields () { دع qtyInputs = document.getElementsByName ('qty') ، resultQty = 0 ؛ لـ (let j = 0 ؛ j ![]()
" + "الفاتورة h1>" + "
تم التحضير لـ: " + invoicedName + " ، على" + "
" + invDate + "
" + الحقول + "
" + "
2020-12-15 08:10:27
كما قلت ، تتمثل مشكلتك الرئيسية في إيجاد طريقة لمنح كل حقل إدخال في صفه معرفه الفريد. بهذه الطريقة يمكنك حساب السعر لكل صف وإدراجه في حقل السعر. عليك أولاً أن تبدأ بالحقول: var field = " " + " " + "
"؛ document.getElementById ('newInvoice'). onclick = function () { ... لـ (let i = 1؛ i <= productFields؛ i ++) { الحقول + = الحقل} ؛ ... } ؛ كل مجموعة تحتاج معرفها الخاص. بهذه الطريقة يمكنك لاحقًا الرجوع إلى كل إدخال في كل صف لحساب السعر الإجمالي الفرعي. صفة الفئة هي شيء يمكنك تعيينه لعناصر متعددة للرجوع إليها لاحقًا. يمكن أن يكون هذا الفصل أي شيء طالما أنه لا يتعارض مع الفصل في أي صف آخر. يمكنك استخدام i للحلقة كمعرف خاص بك ، لأنه يتغير مع كل حلقة. لـ (let i = 1؛ i <= productFields؛ i ++) { var field = " " + " " + "
"؛ الحقول + = الحقل } ؛ سيؤدي هذا إلى إضافة صف الفصل- {i} إلى كل حقل في كل صف. والأفضل من ذلك ، يمكنك إعادة بناء هذا في وظيفته الخاصة وظيفة إنشاء الحقول (ط) { إرجاع " " + " " + "
"؛ } لـ (let i = 1؛ i <= productFields؛ i ++) { الحقول + = إنشاء الحقول (ط) ؛ } ؛ تحصل على شيء مشابه لـ html التالي